/*
 * Copyright (C) [2020] Futurewei Technologies, Inc. All rights reverved.
 *
 * Licensed under the Mulan Permissive Software License v2.
 * You can use this software according to the terms and conditions of the MulanPSL - 2.0.
 * You may obtain a copy of MulanPSL - 2.0 at:
 *
 *   https://opensource.org/licenses/MulanPSL-2.0
 *
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR
 * FIT FOR A PARTICULAR PURPOSE.
 * See the MulanPSL - 2.0 for more details.
 */

#ifndef MAPLERE_MDEBUG_H_
#define MAPLERE_MDEBUG_H_

namespace maple {

    enum EngineDebugKind {
        kEngineDebugNone = 0,
        kEngineDebugInstruction = 1,
        kEngineDebugMethod = 2,
        kEngineDebugAll = kEngineDebugInstruction | kEngineDebugMethod
    };

    extern int debug_engine;

    // Initialize debug_engine with envionment variable MAPLE_ENGINE_DEBUG
    extern "C" void __initialize_debug_kind();
}

#endif // MAPLERE_MDEBUG_H_
